package entities;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.ManyToOne;
import javax.persistence.Table;

@Entity
@Table(name = "BOEK")
public class Boek
{
	private int id;
	private String titel;
	private String omschrijving;
	private boolean uitleenbaar;
	private Genre genre;
	private int isbn;
	
	// Constructors
	
	/**
	 * Constructor voor Hibernate
	 */
	@SuppressWarnings("unused")
	private Boek()
	{
		this.uitleenbaar = true;
	}
	public Boek(String titel)
	{
		this.titel = titel;
		this.uitleenbaar = true;
	}
	public Boek(String titel, boolean uitleenbaar)
	{
		this.titel = titel;
		this.uitleenbaar = uitleenbaar;
	}
	public Boek(String titel, String omschrijving)
	{
		this.titel = titel;
		this.omschrijving = omschrijving;
		this.uitleenbaar = true;
	}
	public Boek(String titel, String omschrijving, boolean uitleenbaar)
	{
		this.titel = titel;
		this.omschrijving = omschrijving;
		this.uitleenbaar = uitleenbaar;
	}
	
	// Getters en Setters
	
	@Id
	@GeneratedValue(strategy = GenerationType.AUTO)
	@Column(name = "id")
	public int getId()
	{
		return id;
	}
	public void setId(int id)
	{
		this.id = id;
	}
	@Column(name = "titel")
	public String getTitel()
	{
		return titel;
	}
	public void setTitel(String titel)
	{
		this.titel = titel;
	}
	@Column(name = "omschrijving")
	public String getOmschrijving()
	{
		return omschrijving;
	}
	public void setOmschrijving(String omschrijving)
	{
		this.omschrijving = omschrijving;
	}
	@Column(name = "is_uitleenbaar")
	public boolean getIsUitleenbaar()
	{
		return uitleenbaar;
	}
	public void setIsUitleenbaar(boolean uitleenbaar)
	{
		this.uitleenbaar = uitleenbaar;
	}
	@ManyToOne
	public Genre getGenre()
	{
		return genre;
	}
	public void setGenre(Genre genre)
	{
		this.genre = genre;
	}
	@Column(name = "isbn")
	public int getIsbn()
	{
		return isbn;
	}
	public void setIsbn(int isbn)
	{
		this.isbn = isbn;
	}
	
	// Methoden
}
